Vector¶

Vector is base class of other vector like classes. It represents a series of vectors.

In [1]:
from py3d import Vector
Vector()
Out[1]:
Vector([], dtype=float64)
In [3]:
Vector([0, 0, 0, 0])
Out[3]:
Vector([0, 0, 0, 0])
In [5]:
Vector([1, 2, -4])
Out[5]:
Vector([ 1,  2, -4])
In [7]:
Vector([1, 2, 3]).tile(2)
Out[7]:
Vector([[1, 2, 3],
        [1, 2, 3]])
In [9]:
import py3d
py3d.Vector([1, 2, 0, 3])
Out[9]:
Vector([1, 2, 0, 3])
In [10]:
Vector([1]).tile(2)
Out[10]:
Vector([[1],
        [1]])

Get unit vector

In [12]:
import py3d
V32 = py3d.Vector([
    [1, 3],
    [2, -9],
    [0.1, -3]])
V32

V32.U
Out[12]:
Vector([[ 0.31622777,  0.9486833 ],
        [ 0.21693046, -0.97618706],
        [ 0.03331483, -0.99944491]])

Get length of vectors

In [13]:
V32.L
Out[13]:
array([[3.16227766],
       [9.21954446],
       [3.0016662 ]])
In [15]:
from numpy import allclose
assert allclose(V32.U.L, [[1], [1], [1]])

Get homogeneous vector

In [16]:
V32.H
Out[16]:
Vector3([[ 1. ,  3. ,  1. ],
         [ 2. , -9. ,  1. ],
         [ 0.1, -3. ,  1. ]])

Get a series of random vectors

In [18]:
import py3d
py3d.Vector.rand(2,3,4)
Out[18]:
Vector([[[0.67891272, 0.21666434, 0.01984207, 0.90979086],
         [0.32606118, 0.32753812, 0.04884116, 0.28556892],
         [0.13694696, 0.29086397, 0.66531528, 0.9205129 ]],

        [[0.47600633, 0.98328084, 0.88122796, 0.96825217],
         [0.38398129, 0.34155496, 0.65899972, 0.30511658],
         [0.24251614, 0.30144722, 0.19477478, 0.2112727 ]]])
In [20]:
import py3d
py3d.Vector([[0,0],[1,2],[3,4]]).diff()
Out[20]:
Vector([[1, 2],
        [2, 2]])

Read pcd file

In [22]:
import py3d

py3d.read_pcd("ascii.pcd").xyz.as_point()
Out[22]:
In [23]:
import py3d
pcd = py3d.read_pcd("binary.pcd")
print("min", pcd.min())
print("max", pcd.max())
pcd.xyz.as_point().paint(py3d.Color.map(pcd.z, pcd.z.min(), pcd.z.max()))
min [-1.09082863e+02 -4.56674919e+01 -4.33038330e+00  2.50000000e+01
  1.22393358e+09]
max [9.74602280e+01 8.35153122e+01 4.22846746e+00 2.55000000e+02
 1.22393358e+09]
Out[23]: